Simulation systems exist to simulate devices or processes. For example, a simulator has been created to simulate the performance of an engine built to a particular specification. To specify a complete engine from intakes to exhaust, however, may require the specification of more than a thousand attributes. For example, the definition of valves in each cylinder typically requires the specification of the number of intake and exhaust valves, the diameter of each valve, cam properties including the lift of each valve, the timing and speed of opening and closing of each valve, etc. Of course there are many other complex parts of a typical modern engine and so it may be seen that definition of a complete operational engine is a complex undertaking, but one that has been necessary to perform a comprehensive simulation. Thus, there is a need for an expert system that will specify all of the attributes of a complete model given only a limited specification provided by a user. There is also a need for an expert system that preserves models for future reuse.
Optimization systems also exist to simulate multiple models to find one or more models that best achieve one or more goals. For example, an optimization system has been created that causes one or more attributes of an engine to be varied, simulations to be performed on each engine variation, and comparison made between the performance of each simulation to determine one or more optimum engine configurations. The optimization strategy, however, is typically complex, requiring the definition of many attributes that affect one another in subtle ways. For example, a design space may be selected that defines borders to the extent to which the optimization system will vary values of attributes during an optimization. Design tolerance attributes may be selected to determine the proximity of values within the design space to be considered. Random selection may furthermore be utilized to choose fewer than all tolerance points in the design space for simulation. Thus, the size of the design space, the proximity of values to be considered within the design space and the portion of the values within the design space to be selected randomly for simulation are intertwined in a way that is complex, particularly to a novice designer. Thus, there is a need for an expert system that will specify all of the attributes of a complete optimization strategy given only a limited specification provided by a user. There is also a need for an expert system that preserves proven strategies for future reuse.
It is also desirable to create a strategy that is aimed at optimizing a particular aspect of a model and is also applicable to that same aspect of, for example, a similar model in a different size. An example related to engines may be drawn from the fact that engine geometries vary from small engines having a single cylinder and small displacements to engines having twelve or more cylinders and large displacements. Needs that are common to both small and large engines often exist, however, that could be resolved by the same strategy if that strategy was based on the size of the engine or a portion thereof. Thus, there is also a need to symbolically define the way attributes that are to vary during simulation, such that those symbolic definitions, are applicable to models of various sizes and configurations. There is also a need for an expert system that preserves symbolic definitions for reuse.